# _*_ coding : utf-8 _*_
# @Time : 2023/3/16 0016 15:20
# @Author : 菜鸟王小二
# @File : 20_jsonpath学习
# @Project : python爬虫

import jsonpath
import json
from pprint import pprint

# json.load()方法可加载文件
obj = json.load(open('book.json','r',encoding='utf-8'))

# 所有书的作者
# content = jsonpath.jsonpath(obj=obj,expr='$.store.book[*].author')
# pprint(content)

# 所有的作者
# content = jsonpath.jsonpath(obj=obj,expr='$..author')
# pprint(content)

# store下面所有的数据
# content = jsonpath.jsonpath(obj=obj,expr='$.store.*')
# pprint(content)

# store下面所有的price
# price_list = jsonpath.jsonpath(obj=obj,expr='$.store..price')
# pprint(price_list)

# 第三本书
# content = jsonpath.jsonpath(obj=obj,expr='$..book[2]')
# pprint(content)

# 最后一本书
# content = jsonpath.jsonpath(obj=obj,expr='$..book[(@.length-1)]')
# pprint(content)

# 前面两本书
# content = jsonpath.jsonpath(obj=obj,expr='$..book[0,1]')
# content = jsonpath.jsonpath(obj=obj,expr='$..book[:2]')
# pprint(content)

# 过滤出所有包含isbn的书，条件过滤需要在()前面加?
# content = jsonpath.jsonpath(obj=obj,expr='$..book[?(@.isbn)]')
# pprint(content)

# 过滤出哪本书超过了十元
content = jsonpath.jsonpath(obj=obj,expr='$..book[?(@.price > 10)]')
pprint(content)